根据udacity课程学习的笔记。
Google Maps JavaScript API V3 Reference
1. 地理编码
在地址和经纬度之间转换
地理编码
是将地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程,您可以借此在地图上放置标记,或在地图上定位。
反向地理编码
是将地理坐标转换为可人工读取的地址的过程。反向地理编码器还可让您找到对应于给定的地点 ID 的地址。
地理编码 API Geocoding API
地理寻宝游戏Geocaching
Google Maps Geocoding API 请求使用以下格式:
https://maps.googleapis.com/maps/api/geocode/outputFormat?parameters
//json输出
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY
//XML输出
https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY
//parameters参数:地址&密钥
示例
请求1
https://maps.googleapis.com/maps/api/geocode/json?key=输入API&latlng=30.315099,120.342865
返回1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86{
"results" : [
{
"//":"地址要素部分,分解信息为街道、城镇、社区、州、国家等",
"//":"详情查阅前面地址类型和地址组成部分类型链接",
"address_components" : [
{
"long_name" : "问鼎西路",
"short_name" : "问鼎西路",
"types" : [ "route" ]
},
{
"long_name" : "下沙",
"short_name" : "下沙",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "江干区",
"short_name" : "江干区",
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"long_name" : "杭州市",
"short_name" : "杭州市",
"types" : [ "locality", "political" ]
},
{
"long_name" : "浙江省",
"short_name" : "浙江省",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "中国",
"short_name" : "CN",
"types" : [ "country", "political" ]
}
],
"//":"格式化地址",
"formatted_address" : "中国浙江省杭州市江干区下沙问鼎西路",
"//":"几何图形包含实际位置的经纬度和其他重要信息",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 30.314869,
"lng" : 120.3432986
},
"southwest" : {
"lat" : 30.3116694,
"lng" : 120.3429376
}
},
"//":"经纬度",
"location" : {
"lat" : 30.3131545,
"lng" : 120.3429652
},
"//":"位置类型告诉我们返回点的更多信息",
"//":"rooftop屋顶说明获得了位置的全部匹配",
"//":"若是range interpolated差值范围:地理编码根据周围点近似的一个点",
"//":"若是geometric center几何中心:获得一条线的中心点",
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 30.314869,
"lng" : 120.3444670802915
},
"southwest" : {
"lat" : 30.3116694,
"lng" : 120.3417691197085
}
}
},
"//":"地点ID是任何地点的另一个唯一标识符",
"place_id" : "ChIJycYN2imYTDQRoLUHSrSQQE8",
"types" : [ "route" ]
},
],
"//":"告诉我们请求是否成功,能在各种web服务间共享,详情查询前面状态代码链接",
"//":"ok指找到一个或多个结果",
"//":"ZERO_RESULTS表示地理编码成功,但未返回任何结果",
"//":"invali request指请求中包含一些错误",
"//":"unknown error通常指服务器错误并可重复请求直到成功",
"//":"query limit error超过查询限制错误",
"//":"request denied error请求被拒错误",
"status" : "OK"
}
2. 地理编码应用
1 | <!-- 提示用户选择城市中的一个区域,并添加缩放区域按钮 --> |
1 | #zoom-to-area-text { |
1 | //点击按钮缩放区域 |
1 | //获取用户输入的地址,通过地理编码获得经纬度,然后放大 |
3. 海拔API
Elevation API
利用 Google Maps Elevation API,您可以通过一个简单的接口查询地球上各个位置的海拔高度数据。此外,您还可以请求路径沿途的抽样海拔高度数据,以便计算路线沿途的海拔高度变化。
查询 雷峰塔海拔
https://maps.googleapis.com/maps/api/elevation/json?locations=30.231596,120.14966&key=输入API
返回1
2
3
4
5
6
7
8
9
10
11
12
13{
"results" : [
{
"elevation" : 16.24967765808105,
"location" : {
"lat" : 30.231596,
"lng" : 120.14966
},
"resolution" : 152.7032318115234
}
],
"status" : "OK"
}
4. 距离矩阵API
使用给定出行方式计算多个起点与终点之间的行程距离和行程持续时间。
1 | <hr> |
1 | #search-within-time-text { |
1 | //点击按钮计算出行时间 |
1 | //使用distanceMatrixService计算每个标记和用户输入位置之间的距离和行程持续时间 |